import xlrd

def get_all_data_from_xls(file_path):
    """
    获取 XLS 文件中的所有数据

    参数:
        file_path (str): XLS 文件路径

    返回:
        dict: 包含所有工作表数据的字典，格式为 {sheet_name: sheet_data}
              其中 sheet_data 是二维列表，表示工作表中的所有行和列
    """
    # 打开工作簿
    workbook = xlrd.open_workbook(file_path)

    all_data = {}

    # 遍历所有工作表
    for sheet in workbook.sheets():
        sheet_name = sheet.name
        print(f"正在处理工作表: {sheet_name}")
        sheet_data = []

        # 遍历工作表中的所有行
        for row_idx in range(sheet.nrows):
            row_data = []

            # 遍历行中的所有单元格
            for col_idx in range(sheet.ncols):
                cell_value = sheet.cell_value(row_idx, col_idx)
                row_data.append(cell_value)

            sheet_data.append(row_data)

        all_data[sheet_name] = sheet_data


    # 处理数据转成这种 格式：[{"user_id":"xxx", "title":"xxx", "analyse": "xxx"}]
    return_data = []
    # 打印所有数据
    for sheet_name, sheet_data in all_data.items():
        for row_idx, row in enumerate(sheet_data):
            # 第一行是标题，所以跳过第一行
            if row_idx == 0:
                continue
            return_data.append({"article_id": row_idx,"user_name":row[0], "title":row[1], "analyse":row[2]})

    return return_data


# 使用示例
if __name__ == "__main__":
    file_path = "分析.xls"  # 替换为你的XLS文件路径
    data = get_all_data_from_xls(file_path)
    print( data)

    # 打印所有数据
    # for sheet_name, sheet_data in data.items():
    #     print(f"工作表: {sheet_name}")
    #     for row in sheet_data:
    #         print(row)
    #     print("\n")